#ifndef __HEAD_H__
#define __HEAD_H__

// 定义结构体

//定义课程信息结点
typedef struct stucourse
{
    char coursename[20];//课程名
    int score;//课程成绩
    int count;//被选数量
}stu_course;

//定义用户信息结点
typedef struct userdata 
{
    char name[20];//姓名
    char id[20];//学号
    char sex[10];//性别
    char class[20];//班级
    char password[20];//密码
    int age;//年龄 
    int sum;//总分
    stu_course course[20];
}user_data;

//定义链表结点
typedef struct list
{
    user_data data;
    struct list *next;//下一个节点
    struct list *pre;//上一个节点
} list_t ,*p_list;

//声明外部变量
extern p_list slist;
extern p_list tlist;
extern p_list alist;
extern int initcount;
extern  stu_course choosecount[20];
extern int course_num;

//添加头文件
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<stdbool.h>

// 添加库文件
#include "student.h"
#include "list.h"
#include "utils.h"

// 定义宏定义
#define MAX_COUNT 10   //选修课最大

#define LOG_FILE "log/error.log"                    // 报错日志文件
#define STUDENTS_FILE "student_management/data/students.txt"           // 学生信息文件
#define TEACHER_FILE "student_management/data/teacher.txt"             // 老师信息文件
#define ADMIN_FILE "student_management/data/admin.txt"                 // 管理员信息文件
#define CLASS_FILE "student_management/data/course_choose_situation.txt"  // 选课情况文件
#endif
